/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package es.esi.gemde.vv.mast.mastresult.provider;

import es.esi.gemde.vv.mast.mastresult.util.ResultAdapterFactory;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class ResultItemProviderAdapterFactory extends ResultAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ResultItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Detailed_Utilization} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Detailed_UtilizationItemProvider detailed_UtilizationItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Detailed_Utilization}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDetailed_UtilizationAdapter() {
		if (detailed_UtilizationItemProvider == null) {
			detailed_UtilizationItemProvider = new Detailed_UtilizationItemProvider(this);
		}

		return detailed_UtilizationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Document_Root} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Document_RootItemProvider document_RootItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Document_Root}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDocument_RootAdapter() {
		if (document_RootItemProvider == null) {
			document_RootItemProvider = new Document_RootItemProvider(this);
		}

		return document_RootItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Fixed_Priority_Policy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Fixed_Priority_PolicyItemProvider fixed_Priority_PolicyItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Fixed_Priority_Policy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFixed_Priority_PolicyAdapter() {
		if (fixed_Priority_PolicyItemProvider == null) {
			fixed_Priority_PolicyItemProvider = new Fixed_Priority_PolicyItemProvider(this);
		}

		return fixed_Priority_PolicyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Global_Miss_Ratio} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Global_Miss_RatioItemProvider global_Miss_RatioItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Global_Miss_Ratio}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobal_Miss_RatioAdapter() {
		if (global_Miss_RatioItemProvider == null) {
			global_Miss_RatioItemProvider = new Global_Miss_RatioItemProvider(this);
		}

		return global_Miss_RatioItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Global_Miss_Ratio_List} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Global_Miss_Ratio_ListItemProvider global_Miss_Ratio_ListItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Global_Miss_Ratio_List}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobal_Miss_Ratio_ListAdapter() {
		if (global_Miss_Ratio_ListItemProvider == null) {
			global_Miss_Ratio_ListItemProvider = new Global_Miss_Ratio_ListItemProvider(this);
		}

		return global_Miss_Ratio_ListItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Global_Response_Time} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Global_Response_TimeItemProvider global_Response_TimeItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Global_Response_Time}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobal_Response_TimeAdapter() {
		if (global_Response_TimeItemProvider == null) {
			global_Response_TimeItemProvider = new Global_Response_TimeItemProvider(this);
		}

		return global_Response_TimeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Global_Response_Time_List} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Global_Response_Time_ListItemProvider global_Response_Time_ListItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Global_Response_Time_List}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobal_Response_Time_ListAdapter() {
		if (global_Response_Time_ListItemProvider == null) {
			global_Response_Time_ListItemProvider = new Global_Response_Time_ListItemProvider(this);
		}

		return global_Response_Time_ListItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Interrupt_FP_Policy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Interrupt_FP_PolicyItemProvider interrupt_FP_PolicyItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Interrupt_FP_Policy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInterrupt_FP_PolicyAdapter() {
		if (interrupt_FP_PolicyItemProvider == null) {
			interrupt_FP_PolicyItemProvider = new Interrupt_FP_PolicyItemProvider(this);
		}

		return interrupt_FP_PolicyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Miss_Ratio} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Miss_RatioItemProvider miss_RatioItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Miss_Ratio}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMiss_RatioAdapter() {
		if (miss_RatioItemProvider == null) {
			miss_RatioItemProvider = new Miss_RatioItemProvider(this);
		}

		return miss_RatioItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Miss_Ratio_List} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Miss_Ratio_ListItemProvider miss_Ratio_ListItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Miss_Ratio_List}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMiss_Ratio_ListAdapter() {
		if (miss_Ratio_ListItemProvider == null) {
			miss_Ratio_ListItemProvider = new Miss_Ratio_ListItemProvider(this);
		}

		return miss_Ratio_ListItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Non_Preemptible_FP_Policy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Non_Preemptible_FP_PolicyItemProvider non_Preemptible_FP_PolicyItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Non_Preemptible_FP_Policy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNon_Preemptible_FP_PolicyAdapter() {
		if (non_Preemptible_FP_PolicyItemProvider == null) {
			non_Preemptible_FP_PolicyItemProvider = new Non_Preemptible_FP_PolicyItemProvider(this);
		}

		return non_Preemptible_FP_PolicyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Operation_Results} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Operation_ResultsItemProvider operation_ResultsItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Operation_Results}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOperation_ResultsAdapter() {
		if (operation_ResultsItemProvider == null) {
			operation_ResultsItemProvider = new Operation_ResultsItemProvider(this);
		}

		return operation_ResultsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Polling_Policy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Polling_PolicyItemProvider polling_PolicyItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Polling_Policy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPolling_PolicyAdapter() {
		if (polling_PolicyItemProvider == null) {
			polling_PolicyItemProvider = new Polling_PolicyItemProvider(this);
		}

		return polling_PolicyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Priority_Ceiling} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Priority_CeilingItemProvider priority_CeilingItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Priority_Ceiling}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPriority_CeilingAdapter() {
		if (priority_CeilingItemProvider == null) {
			priority_CeilingItemProvider = new Priority_CeilingItemProvider(this);
		}

		return priority_CeilingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Processing_Resource_Results} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Processing_Resource_ResultsItemProvider processing_Resource_ResultsItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Processing_Resource_Results}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessing_Resource_ResultsAdapter() {
		if (processing_Resource_ResultsItemProvider == null) {
			processing_Resource_ResultsItemProvider = new Processing_Resource_ResultsItemProvider(this);
		}

		return processing_Resource_ResultsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Queue_Size} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Queue_SizeItemProvider queue_SizeItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Queue_Size}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createQueue_SizeAdapter() {
		if (queue_SizeItemProvider == null) {
			queue_SizeItemProvider = new Queue_SizeItemProvider(this);
		}

		return queue_SizeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Ready_Queue_Size} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Ready_Queue_SizeItemProvider ready_Queue_SizeItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Ready_Queue_Size}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReady_Queue_SizeAdapter() {
		if (ready_Queue_SizeItemProvider == null) {
			ready_Queue_SizeItemProvider = new Ready_Queue_SizeItemProvider(this);
		}

		return ready_Queue_SizeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.REAL_TIME_SITUATION} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected REAL_TIME_SITUATIONItemProvider reaL_TIME_SITUATIONItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.REAL_TIME_SITUATION}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createREAL_TIME_SITUATIONAdapter() {
		if (reaL_TIME_SITUATIONItemProvider == null) {
			reaL_TIME_SITUATIONItemProvider = new REAL_TIME_SITUATIONItemProvider(this);
		}

		return reaL_TIME_SITUATIONItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Scheduling_Server_Results} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Scheduling_Server_ResultsItemProvider scheduling_Server_ResultsItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Scheduling_Server_Results}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createScheduling_Server_ResultsAdapter() {
		if (scheduling_Server_ResultsItemProvider == null) {
			scheduling_Server_ResultsItemProvider = new Scheduling_Server_ResultsItemProvider(this);
		}

		return scheduling_Server_ResultsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Shared_Resource_Results} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Shared_Resource_ResultsItemProvider shared_Resource_ResultsItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Shared_Resource_Results}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createShared_Resource_ResultsAdapter() {
		if (shared_Resource_ResultsItemProvider == null) {
			shared_Resource_ResultsItemProvider = new Shared_Resource_ResultsItemProvider(this);
		}

		return shared_Resource_ResultsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Simulation_Timing_Result} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Simulation_Timing_ResultItemProvider simulation_Timing_ResultItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Simulation_Timing_Result}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSimulation_Timing_ResultAdapter() {
		if (simulation_Timing_ResultItemProvider == null) {
			simulation_Timing_ResultItemProvider = new Simulation_Timing_ResultItemProvider(this);
		}

		return simulation_Timing_ResultItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Slack} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SlackItemProvider slackItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Slack}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSlackAdapter() {
		if (slackItemProvider == null) {
			slackItemProvider = new SlackItemProvider(this);
		}

		return slackItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Sporadic_Server_Policy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Sporadic_Server_PolicyItemProvider sporadic_Server_PolicyItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Sporadic_Server_Policy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSporadic_Server_PolicyAdapter() {
		if (sporadic_Server_PolicyItemProvider == null) {
			sporadic_Server_PolicyItemProvider = new Sporadic_Server_PolicyItemProvider(this);
		}

		return sporadic_Server_PolicyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Timing_Result} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Timing_ResultItemProvider timing_ResultItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Timing_Result}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTiming_ResultAdapter() {
		if (timing_ResultItemProvider == null) {
			timing_ResultItemProvider = new Timing_ResultItemProvider(this);
		}

		return timing_ResultItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Trace} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TraceItemProvider traceItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Trace}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTraceAdapter() {
		if (traceItemProvider == null) {
			traceItemProvider = new TraceItemProvider(this);
		}

		return traceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Transaction_Results} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Transaction_ResultsItemProvider transaction_ResultsItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Transaction_Results}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTransaction_ResultsAdapter() {
		if (transaction_ResultsItemProvider == null) {
			transaction_ResultsItemProvider = new Transaction_ResultsItemProvider(this);
		}

		return transaction_ResultsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link es.esi.gemde.vv.mast.mastresult.Utilization} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UtilizationItemProvider utilizationItemProvider;

	/**
	 * This creates an adapter for a {@link es.esi.gemde.vv.mast.mastresult.Utilization}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUtilizationAdapter() {
		if (utilizationItemProvider == null) {
			utilizationItemProvider = new UtilizationItemProvider(this);
		}

		return utilizationItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void dispose() {
		if (detailed_UtilizationItemProvider != null) detailed_UtilizationItemProvider.dispose();
		if (document_RootItemProvider != null) document_RootItemProvider.dispose();
		if (fixed_Priority_PolicyItemProvider != null) fixed_Priority_PolicyItemProvider.dispose();
		if (global_Miss_RatioItemProvider != null) global_Miss_RatioItemProvider.dispose();
		if (global_Miss_Ratio_ListItemProvider != null) global_Miss_Ratio_ListItemProvider.dispose();
		if (global_Response_TimeItemProvider != null) global_Response_TimeItemProvider.dispose();
		if (global_Response_Time_ListItemProvider != null) global_Response_Time_ListItemProvider.dispose();
		if (interrupt_FP_PolicyItemProvider != null) interrupt_FP_PolicyItemProvider.dispose();
		if (miss_RatioItemProvider != null) miss_RatioItemProvider.dispose();
		if (miss_Ratio_ListItemProvider != null) miss_Ratio_ListItemProvider.dispose();
		if (non_Preemptible_FP_PolicyItemProvider != null) non_Preemptible_FP_PolicyItemProvider.dispose();
		if (operation_ResultsItemProvider != null) operation_ResultsItemProvider.dispose();
		if (polling_PolicyItemProvider != null) polling_PolicyItemProvider.dispose();
		if (priority_CeilingItemProvider != null) priority_CeilingItemProvider.dispose();
		if (processing_Resource_ResultsItemProvider != null) processing_Resource_ResultsItemProvider.dispose();
		if (queue_SizeItemProvider != null) queue_SizeItemProvider.dispose();
		if (ready_Queue_SizeItemProvider != null) ready_Queue_SizeItemProvider.dispose();
		if (reaL_TIME_SITUATIONItemProvider != null) reaL_TIME_SITUATIONItemProvider.dispose();
		if (scheduling_Server_ResultsItemProvider != null) scheduling_Server_ResultsItemProvider.dispose();
		if (shared_Resource_ResultsItemProvider != null) shared_Resource_ResultsItemProvider.dispose();
		if (simulation_Timing_ResultItemProvider != null) simulation_Timing_ResultItemProvider.dispose();
		if (slackItemProvider != null) slackItemProvider.dispose();
		if (sporadic_Server_PolicyItemProvider != null) sporadic_Server_PolicyItemProvider.dispose();
		if (timing_ResultItemProvider != null) timing_ResultItemProvider.dispose();
		if (traceItemProvider != null) traceItemProvider.dispose();
		if (transaction_ResultsItemProvider != null) transaction_ResultsItemProvider.dispose();
		if (utilizationItemProvider != null) utilizationItemProvider.dispose();
	}

}
